home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / strucpgm.arc / BLACKJAC.BAS next >
BASIC Source File  |  1987-01-30  |  8KB  |  358 lines

  1.       2 OPTION BASE 1
  2.       3 DIM AZ( 1 ),A%( 21 ),A$( 6 ),B$( 1 )
  3.       4 DIM AA%(52,2)
  4.     503 COMMON AZ(),A%(),A$(),B$()
  5.     504 COMMON AA%()
  6.    1001 GOTO 1014
  7.    1002 ::
  8.    1003 A%(17)=1
  9.    1004 FOR AA%=1 TO 4 STEP 1
  10.    1005 A%(15)=AA%
  11.    1006 FOR AB%=1 TO 13 STEP 1
  12.    1007 A%(16)=AB%
  13.    1008 AA%(A%(17),1)=A%(16)
  14.    1009 AA%(A%(17),2)=A%(15)
  15.    1010 A%(17)=A%(17)+1
  16.    1011 NEXT
  17.    1012 NEXT
  18.    1013 RETURN
  19.    1014 :
  20.    1015 GOTO 1030
  21.    1016 ::
  22.    1017 FOR AC%=52 TO 1 STEP -1
  23.    1018 A%(20)=AC%
  24.    1019 RANDOMIZE VAL(RIGHT$(TIME$,2))
  25.    1020 A%(18)=AA%(A%(20),1)
  26.    1021 A%(19)=AA%(A%(20),2)
  27.    1022 A%(21)=INT(RND*52)+1
  28.    1023 AA%(A%(20),1)=AA%(A%(21),1)
  29.    1024 AA%(A%(20),2)=AA%(A%(21),2)
  30.    1025 AA%(A%(21),1)=A%(18)
  31.    1026 AA%(A%(21),2)=A%(19)
  32.    1027 A%(3)=1
  33.    1028 NEXT
  34.    1029 RETURN
  35.    1030 :
  36.    1031 GOTO 1046
  37.    1032 ::
  38.    1033 LOCATE A%(9),A%(8)
  39.    1034 PRINT " _______"
  40.    1035 LOCATE A%(9)+1,A%(8)
  41.    1036 PRINT "|       |"
  42.    1037 LOCATE A%(9)+2,A%(8)
  43.    1038 PRINT "|       |"
  44.    1039 LOCATE A%(9)+3,A%(8)
  45.    1040 PRINT "|       |"
  46.    1041 LOCATE A%(9)+4,A%(8)
  47.    1042 PRINT "|       |"
  48.    1043 LOCATE A%(9)+5,A%(8)
  49.    1044 PRINT "|_______|"
  50.    1045 RETURN
  51.    1046 :
  52.    1047 GOTO 1060
  53.    1048 ::
  54.    1049 LOCATE 2,1
  55.    1050 PRINT "         mmmmmmmm"
  56.    1051 PRINT "      /~~~~~~~~~~~~\"
  57.    1052 PRINT "     /              \"
  58.    1053 PRINT "     |              |"
  59.    1054 PRINT "    (|              |"
  60.    1055 PRINT "     |       _\     |"
  61.    1056 PRINT "     |              |"
  62.    1057 PRINT "      \     ===    /"
  63.    1058 PRINT "        \_________/"
  64.    1059 RETURN
  65.    1060 :
  66.    1061 GOTO 1068
  67.    1062 ::
  68.    1063 LOCATE 4,7
  69.    1064 PRINT "            "
  70.    1065 LOCATE 5,7
  71.    1066 PRINT "  ~o~    ~o~ "
  72.    1067 RETURN
  73.    1068 :
  74.    1069 GOTO 1086
  75.    1070 ::
  76.    1071 LOCATE 8,12
  77.    1072 PRINT " ___"
  78.    1073 LOCATE 9,12
  79.    1074 PRINT "(___)"
  80.    1075 FOR AD%=1 TO 50 STEP 1
  81.    1076 A%(2)=AD%
  82.    1077 NEXT
  83.    1078 LOCATE 8,12
  84.    1079 PRINT "      "
  85.    1080 LOCATE 9,12
  86.    1081 PRINT " === "
  87.    1082 FOR AE%=1 TO 50 STEP 1
  88.    1083 A%(2)=AE%
  89.    1084 NEXT
  90.    1085 RETURN
  91.    1086 :
  92.    1087 GOTO 1106
  93.    1088 ::
  94.    1089 LOCATE 4,7
  95.    1090 PRINT "~~~  \ / ~~~"
  96.    1091 LOCATE 5,7
  97.    1092 PRINT "  o        o"
  98.    1093 GOSUB 1070
  99.    1094 LOCATE 23,1
  100.    1095 PRINT " PLAYER"
  101.    1096 GOSUB 1070
  102.    1097 LOCATE 23,10
  103.    1098 PRINT "WINS   "
  104.    1099 FOR AF%=1 TO 1000 STEP 1
  105.    1100 A%(1)=AF%
  106.    1101 NEXT
  107.    1102 LOCATE 23,1
  108.    1103 PRINT "                            "
  109.    1104 GOSUB 1062
  110.    1105 RETURN
  111.    1106 :
  112.    1107 GOTO 1125
  113.    1108 ::
  114.    1109 GOSUB 1070
  115.    1110 LOCATE 23,1
  116.    1111 PRINT "DEALER"
  117.    1112 GOSUB 1070
  118.    1113 LOCATE 23,8
  119.    1114 PRINT "WINS"
  120.    1115 LOCATE 9,12
  121.    1116 PRINT "\___/"
  122.    1117 FOR AG%=1 TO 1000 STEP 1
  123.    1118 A%(10)=AG%
  124.    1119 NEXT
  125.    1120 LOCATE 9,12
  126.    1121 PRINT " === "
  127.    1122 LOCATE 23,1
  128.    1123 PRINT "                            "
  129.    1124 RETURN
  130.    1125 :
  131.    1126 GOTO 1189
  132.    1127 ::
  133.    1128 IF A%(6)>1 THEN 1130
  134.    1129 GOTO 1164
  135.    1130 IF A%(6)<10 THEN 1132
  136.    1131 GOTO 1134
  137.    1132 A$(3)=CHR$(A%(6)+48)
  138.    1133 GOTO 1135
  139.    1134 :
  140.    1135 :
  141.    1136 IF A%(6)=10 THEN 1138
  142.    1137 GOTO 1140
  143.    1138 A$(3)="10"
  144.    1139 GOTO 1141
  145.    1140 :
  146.    1141 :
  147.    1142 IF A%(6)=11 THEN 1144
  148.    1143 GOTO 1147
  149.    1144 A$(3)="J"
  150.    1145 A%(6)=10
  151.    1146 GOTO 1148
  152.    1147 :
  153.    1148 :
  154.    1149 IF A%(6)=12 THEN 1151
  155.    1150 GOTO 1154
  156.    1151 A$(3)="Q"
  157.    1152 A%(6)=10
  158.    1153 GOTO 1155
  159.    1154 :
  160.    1155 :
  161.    1156 IF A%(6)=13 THEN 1158
  162.    1157 GOTO 1161
  163.    1158 A$(3)="K"
  164.    1159 A%(6)=10
  165.    1160 GOTO 1162
  166.    1161 :
  167.    1162 :
  168.    1163 GOTO 1174
  169.    1164 :
  170.    1165 A$(3)="A"
  171.    1166 IF A%(14)+11>21 THEN 1168
  172.    1167 GOTO 1170
  173.    1168 A%(6)=1
  174.    1169 GOTO 1173
  175.    1170 :
  176.    1171 A%(6)=11
  177.    1172 A$(6)="Y"
  178.    1173 :
  179.    1174 :
  180.    1175 A%(14)=A%(14)+A%(6)
  181.    1176 IF A%(14)>21 THEN 1178
  182.    1177 GOTO 1186
  183.    1178 IF A$(6)="Y" THEN 1180
  184.    1179 GOTO 1183
  185.    1180 A%(14)=A%(14)-10
  186.    1181 A$(6)="N"
  187.    1182 GOTO 1184
  188.    1183 :
  189.    1184 :
  190.    1185 GOTO 1187
  191.    1186 :
  192.    1187 :
  193.    1188 RETURN
  194.    1189 :
  195.    1190 GOTO 1199
  196.    1191 ::
  197.    1192 A%(4)=A%(4)+1
  198.    1193 A%(9)=14
  199.    1194 A%(8)=A%(4)*13-3
  200.    1195 GOSUB 1032
  201.    1196 LOCATE 17,A%(4)*13
  202.    1197 PRINT A$(3)
  203.    1198 RETURN
  204.    1199 :
  205.    1200 GOTO 1209
  206.    1201 ::
  207.    1202 A%(5)=A%(5)+1
  208.    1203 A%(9)=5
  209.    1204 A%(8)=A%(5)*13+8
  210.    1205 GOSUB 1032
  211.    1206 LOCATE 8,A%(5)*13+11
  212.    1207 PRINT A$(3)
  213.    1208 RETURN
  214.    1209 :
  215.    1210 GOTO 1238
  216.    1211 ::
  217.    1212 A%(6)=AA%(A%(3),1)
  218.    1213 IF A$(1)="D" THEN 1215
  219.    1214 GOTO 1222
  220.    1215 A%(14)=A%(13)
  221.    1216 A$(6)=A$(5)
  222.    1217 GOSUB 1127
  223.    1218 A%(13)=A%(14)
  224.    1219 A$(5)=A$(6)
  225.    1220 GOSUB 1201
  226.    1221 GOTO 1229
  227.    1222 :
  228.    1223 A%(14)=A%(12)
  229.    1224 A$(6)=A$(4)
  230.    1225 GOSUB 1127
  231.    1226 A%(12)=A%(14)
  232.    1227 A$(4)=A$(6)
  233.    1228 GOSUB 1191
  234.    1229 :
  235.    1230 A%(3)=A%(3)+1
  236.    1231 IF A%(3)>52 THEN 1233
  237.    1232 GOTO 1235
  238.    1233 GOSUB 1016
  239.    1234 GOTO 1236
  240.    1235 :
  241.    1236 :
  242.    1237 RETURN
  243.    1238 :
  244.    1239 A%(7)=1000
  245.    1240 GOSUB 1002
  246.    1241 GOSUB 1016
  247.    1242 IF A%(7)>0 THEN 1243 ELSE GOTO 1352
  248.    1243 FOR AI%=1 TO 50 STEP 1
  249.    1244 A%(1)=AI%
  250.    1245 PRINT " "
  251.    1246 NEXT
  252.    1247 GOSUB 1048
  253.    1248 GOSUB 1062
  254.    1249 LOCATE 2,50
  255.    1250 PRINT " CREDIT ......$ "
  256.    1251 LOCATE 2,66
  257.    1252 PRINT A%(7)
  258.    1253 GOSUB 1070
  259.    1254 LOCATE 23,1
  260.    1255 PRINT "PLACE "
  261.    1256 GOSUB 1070
  262.    1257 LOCATE 23,7
  263.    1258 PRINT "YOUR "
  264.    1259 GOSUB 1070
  265.    1260 LOCATE 23,12
  266.    1261 PRINT "BET "
  267.    1262 LOCATE 23,17
  268.    1263 INPUT A%(11)
  269.    1264 LOCATE 23,1
  270.    1265 PRINT "                          "
  271.    1266 A%(4)=0
  272.    1267 A%(5)=0
  273.    1268 A%(12)=0
  274.    1269 A%(13)=0
  275.    1270 A$(4)="N"
  276.    1271 A$(5)="N"
  277.    1272 A$(1)="P"
  278.    1273 GOSUB 1211
  279.    1274 A$(1)="D"
  280.    1275 GOSUB 1211
  281.    1276 A$(1)="P"
  282.    1277 GOSUB 1211
  283.    1278 A$(1)="D"
  284.    1279 GOSUB 1211
  285.    1280 A$(1)="P"
  286.    1281 GOSUB 1070
  287.    1282 LOCATE 23,1
  288.    1283 PRINT "STAY "
  289.    1284 GOSUB 1070
  290.    1285 LOCATE 23,6
  291.    1286 PRINT "OR "
  292.    1287 GOSUB 1070
  293.    1288 LOCATE 23,9
  294.    1289 PRINT "HIT "
  295.    1290 LOCATE 23,14
  296.    1291 INPUT A$(2)
  297.    1292 LOCATE 23,1
  298.    1293 PRINT "                      "
  299.    1294 IF A$(2)="H" THEN 1295 ELSE GOTO 1316
  300.    1295 GOSUB 1211
  301.    1296 IF A%(12)<21 THEN 1298
  302.    1297 GOTO 1312
  303.    1298 GOSUB 1070
  304.    1299 LOCATE 23,1
  305.    1300 PRINT "STAY "
  306.    1301 GOSUB 1070
  307.    1302 LOCATE 23,6
  308.    1303 PRINT "OR "
  309.    1304 GOSUB 1070
  310.    1305 LOCATE 23,9
  311.    1306 PRINT "HIT "
  312.    1307 LOCATE 23,14
  313.    1308 INPUT A$(2)
  314.    1309 LOCATE 23,1
  315.    1310 PRINT "                       "
  316.    1311 GOTO 1314
  317.    1312 :
  318.    1313 A$(2)="S"
  319.    1314 :
  320.    1315 GOTO 1294
  321.    1316 :
  322.    1317 A$(1)="D"
  323.    1318 IF A%(12)<22 THEN 1320
  324.    1319 GOTO 1326
  325.    1320 IF A%(13)<16 THEN 1321 ELSE GOTO 1324
  326.    1321 GOSUB 1211
  327.    1322 GOSUB 1127
  328.    1323 GOTO 1320
  329.    1324 :
  330.    1325 GOTO 1327
  331.    1326 :
  332.    1327 :
  333.    1328 IF A%(12)>21 THEN 1330
  334.    1329 GOTO 1333
  335.    1330 GOSUB 1108
  336.    1331 A%(7)=A%(7)-A%(11)
  337.    1332 GOTO 1350
  338.    1333 :
  339.    1334 IF A%(13)>21 THEN 1336
  340.    1335 GOTO 1339
  341.    1336 GOSUB 1088
  342.    1337 A%(7)=A%(7)+A%(11)
  343.    1338 GOTO 1349
  344.    1339 :
  345.    1340 IF A%(12)<=A%(13) THEN 1342
  346.    1341 GOTO 1345
  347.    1342 GOSUB 1108
  348.    1343 A%(7)=A%(7)-A%(11)
  349.    1344 GOTO 1348
  350.    1345 :
  351.    1346 GOSUB 1088
  352.    1347 A%(7)=A%(7)+A%(11)
  353.    1348 :
  354.    1349 :
  355.    1350 :
  356.    1351 GOTO 1242
  357.    1352 :
  358.